# SPDX-License-Identifier: GPL-2.0+ OR MIT

# Check if io_uring supports zero-copy receive
HAS_IOURING_ZCRX := $(shell \
	echo -e '#include <liburing.h>\n' \
	     'void *func = (void *)io_uring_register_ifq;\n' \
	     'int main() {return 0;}' | \
	$(CC) -luring -x c - -o /dev/null 2>&1 && echo y)

ifeq ($(HAS_IOURING_ZCRX),y)
COND_GEN_FILES += iou-zcrx
else
$(warning excluding iouring tests, liburing not installed or too old)
endif

TEST_GEN_FILES := \
	$(COND_GEN_FILES) \
# end of TEST_GEN_FILES

TEST_PROGS = \
	csum.py \
	devlink_port_split.py \
	devlink_rate_tc_bw.py \
	devmem.py \
	ethtool.sh \
	ethtool_extended_state.sh \
	ethtool_mm.sh \
	ethtool_rmon.sh \
	hw_stats_l3.sh \
	hw_stats_l3_gre.sh \
	iou-zcrx.py \
	irq.py \
	loopback.sh \
	nic_timestamp.py \
	pp_alloc_fail.py \
	rss_api.py \
	rss_ctx.py \
	rss_flow_label.py \
	rss_input_xfrm.py \
	toeplitz.py \
	tso.py \
	xsk_reconfig.py \
	#

TEST_FILES := \
	ethtool_lib.sh \
	#

TEST_INCLUDES := \
	$(wildcard lib/py/*.py ../lib/py/*.py) \
	../../../net/lib.sh \
	../../../net/forwarding/ipip_lib.sh \
	../../../net/forwarding/lib.sh \
	../../../net/forwarding/tc_common.sh \
	#

# YNL files, must be before "include ..lib.mk"
YNL_GEN_FILES := \
	ncdevmem \
	toeplitz \
# end of YNL_GEN_FILES
TEST_GEN_FILES += $(YNL_GEN_FILES)
TEST_GEN_FILES += $(patsubst %.c,%.o,$(wildcard *.bpf.c))

include ../../../lib.mk

# YNL build
YNL_GENS := \
	ethtool \
	netdev \
# end of YNL_GENS

include ../../../net/ynl.mk

include ../../../net/bpf.mk

ifeq ($(HAS_IOURING_ZCRX),y)
$(OUTPUT)/iou-zcrx: LDLIBS += -luring
endif
